<template>
	<view class="content">
		<image class="logo" src="/static/logo.png"></image>
		<view class="text-area">
			<text class="title">{{title}}</text>
		</view>
		<button v-if="canIUseGetUserProfile" style="margin-bottom: 40rpx;" type="primary" lang="zh_CN"
			@tap="getUserProfile">新版登陆方式</button>
		<button v-else type="primary" lang="zh_CN" open-type="getUserInfo"
			@getuserinfo="bindgetuserinfo">旧版登录方式</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				title: '登录适配',
				canIUseGetUserProfile: false,
			}
		},
		onLoad() {
			if (wx.getUserProfile) {
				//如果存在就是支持新版登录方式
				this.canIUseGetUserProfile = true;
			}
			console.log(this.canIUseGetUserProfile);
		},
		methods: {
			//旧版登录方法
			bindgetuserinfo(e) {
				if (e.detail.userInfo) {
					console.log(e.detail.userInfo);
					//登录请求后待端接口方法
					this.wxLoginCode(e.detail.userInfo, '666')
				} else {
					//可以给个提示

				}
			},
			//新版登录方法
			getUserProfile() {
				uni.getUserProfile({
					lang: 'zh_CN',
					desc: '用于获取您的个人信息',
					success: res => {
						console.log(res.userInfo);
						if (res.userInfo) {
							//在此发起网络请求
							//请求后端给的登录接口，把res.code等相关参数带上
							//登录请求后待端接口方法
							this.wxLoginCode(res.userInfo, '888')

						} else {
							//失败做提示
						}
					},
					fail: err => {
						uni.showToast({
							title: '你已拒绝登录',
							icon: 'error',
							duration: 2000
						});
					}
				})
			},
			//封装的登录请求后待端接口方法
			wxLoginCode(e1, e2) {
				//获取微信用户code
				wx.login({
					success: res => {
						if (res.code) {
							//在此发起网络请求
							//请求后端给的登录接口，把res.code等相关参数带上
							console.log(res);
							console.log(e1);
							console.log(e2);

						} else {
							// console.log('登录失败！' + res.errMsg)
							//可以给个提示
						}
					}
				})
			},
		}
	}
</script>

<style>
	.content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}

	.logo {
		height: 200rpx;
		width: 200rpx;
		margin-top: 200rpx;
		margin-left: auto;
		margin-right: auto;
		margin-bottom: 50rpx;
	}

	.text-area {
		display: flex;
		justify-content: center;
	}

	.title {
		font-size: 36rpx;
		color: #8f8f94;
	}
</style>
